Imagina una biblioteca donde los libros no se ordenan por fecha de llegada, sino por una clave universal. Este es el cambio de paradigma desde lo secuencial hacia contenedores asociativos. En lugar de escanear un vector de forma lineal ($O(N)$), utilizamos un map o set para lograr búsquedas en tiempo logarítmico ($O(\log n)$).
1. La naturaleza de la asociación
En un map, almacenamos pares clave-valor. La clave actúa como un índice que puede ser una cadena, un objeto personalizado o cualquier tipo que soporte ordenamiento estricto débil. Un set, por el contrario, almacena solo claves únicas, convirtiéndolo en la herramienta perfecta para verificar membresía o filtrado.
2. Ordenados frente a desordenados
Contenedores estándar (map, set) mantienen las claves ordenadas. El Estándar C++11 introdujo variantes desordenadas (unordered_map) que usan una función hash para un rendimiento promedio de $O(1)$. Busca el Logotipo C++11 al utilizar estas cubetas de alto rendimiento.